package com.fang.algorithm.zuo.sort;

import com.fang.algorithm.common.PrintUtils;
import com.fang.algorithm.common.SwapUtils;

/**
 * @author fanglingxiao
 * @version 1.0
 * @description 打牌场景 新抓一张牌放什么位置
 * 第一张牌默认
 * 从第二张牌开始与前面的牌比较大小
 * @date 2022/1/13 10:11 下午
 **/
public class Test04_Insert {
    public static void main(String[] args) {
        int[] arr = {2, 5, 6, 8, 9, 0, 1, 5, 7};
        PrintUtils.printArr(arr);
        sort(arr);
        PrintUtils.printArr(arr);
    }

    private static void insertSort(int[] arr) {
        if (arr == null || arr.length < 2) {
            return;
        }
        for (int end = 1; end < arr.length; end++) {
            int currNumIndex = end;
            while (currNumIndex - 1 >= 0 && arr[currNumIndex - 1] > arr[currNumIndex]) {
                SwapUtils.arrSwap(arr, currNumIndex - 1, currNumIndex);
                currNumIndex--;
            }
        }
    }

    private static void sort(int[] arr) {
        if (arr == null || arr.length < 2) {
            return;
        }
        for (int i = 1; i < arr.length; i++) {
            int j = i;
            while (j - 1 >= 0 && arr[j] < arr[j - 1]) {
                int temp = arr[j];
                arr[j] = arr[j - 1];
                arr[j - 1] = temp;
                j--;
            }
        }
    }
}
